Content delivery system and method

ABSTRACT

A system for delivering content to users from a content provider, the system comprising a transmission system for transmitting content in a series of segments and a plurality of receivers for receiving the series of segments transmitted from the transmission system, each of the receivers comprising a memory, a processor, and an output driver. The memory may have stored therein instructions that, when executed, will cause the processor to perform the following steps: (1) comparing each of the received segments to any previously stored segments to determine whether each received segment has been previously stored; (2) for a particular received segment that has not been previously stored, storing the segment in the memory; (3) for a particular received segment that has been previously stored, determining whether the received segment is missing data and, if it is, retrieving the missing data, if available, from the corresponding previously stored segment; and (4) providing each of the received segments to the output driver along with any missing data retrieved from the memory. In preferred embodiments, the system is useful for enabling the smooth provision of content to a user as any missing data contained in a received data stream can be obtained, if available, in the memory and used to compensate for the missing data in the transmission.

FIELD OF THE INVENTION

This invention relates to the field of media transmission systems and,in certain embodiments, to an improved system and method for deliveringcontent to a user.

BACKGROUND OF THE INVENTION

People have an almost insatiable appetite for content, everything frommusic to videos, to full-length movies. There is a need to improve thedelivery of content to users in order to make delivery more reliable.There are numerous delivery systems known in the art. For example, audioand video have long been delivered to users using a broadcasttransmission system (e.g., using large land-based antennas) where theusers are provided with suitable receivers, such as radios andtelevisions. More recently, satellite radio transmissions are beginningto replace traditional radio broadcasts, as customers demand morecontent and fewer commercials. With satellite radio a large variety ofchannels can be provided, often with few or even no commercials.Satellite television is similarly gaining in popularity. The Internet isbecoming an increasingly popular mechanism for delivering content tousers as well.

One disadvantage of wireless transmission systems is that the signal canbe blocked, causing a loss in transmission. For example, weather caninterrupt a satellite transmission. Mobile satellite receivers can alsobe blocked as they pass under trees, bridges and other obstructions.These same issues apply to other types of wireless broadcasts, such asland-based microwave transmissions. Even wired content delivery systemscan suffer interruptions in service caused by noise on the line or otherinterference.

SUMMARY OF THE INVENTION

In one aspect, the invention features a system for delivering content tousers from a content provider, the system comprising a transmissionsystem for transmitting content in a series of segments and a pluralityof receivers for receiving the series of segments transmitted from thetransmission system, each of the receivers comprising a memory, aprocessor, and an output driver. The memory has stored thereininstructions that, when executed, will cause the processor to performthe following steps: (1) comparing each of the received segments to anypreviously stored segments to determine whether each received segmenthas been previously stored; (2) for a particular received segment thathas not been previously stored, storing the segment in the memory; (3)for a particular received segment that has been previously stored,determining whether the received segment is missing data and, if it is,retrieving the missing data, if available, from the correspondingpreviously stored segment; and (4) providing each of the receivedsegments to the output driver along with any missing data retrieved fromthe memory.

For a particular received segment that has been previously stored, thestored instructions may further cause the processor to perform the stepof determining whether the previously stored segment is missing dataand, if it is, obtaining the missing data from the received segment, ifavailable, and storing the missing data in the memory to thereby createa more complete copy of the segment in the memory.

The memory can be either one physical memory or a plurality ofphysically distinct memories.

The transmission system may be a wireless transmission system. Itfurther may comprise a ground based antenna and a plurality ofsatellites. Alternatively, a ground-based antenna may transmit directlyto the receivers. The transmission system can also be configured inother ways, such as a series of ground-based antennas.

Each of the receivers can further comprise an antenna and a memory fortemporarily storing the series of segments as they are received. Thismemory can be physically the same memory as the memory mentioned aboveor a different memory. A data bus may be used to link the variouscomponents.

The series of segments can comprise data, songs, commercials, video,spoken words or any combination thereof.

The output device coupled to the output driver can be one or morespeakers and/or displays, as appropriate depending on the nature of thedata to be transmitted.

Each of the segments can comprise a code that identifies the segment aseither a segment that will be transmitted multiple times or as a segmentthat will be transmitted only once. The instructions can optionallycause the processor to perform steps (1), (2) and (3) above only forthose segments that have the code indicating that they will betransmitted multiple times.

In another aspect, the invention features a system for delivering audiocontent to users from a content provider, the system comprising atransmission system for transmitting content in a series of audiosegments and a plurality of receivers for receiving the series of audiosegments transmitted from the transmission system, each of the receiverscomprising a memory, a processor, and an output driver. The memory hasstored therein instructions that, when executed, will cause theprocessor to perform the following steps: (1) comparing each of thereceived audio segments to any previously stored segments to determinewhether each received audio segment has been previously stored; (2) fora particular received audio segment that has not been previously stored,storing the audio segment in the memory; (3) for a particular receivedaudio segment that has been previously stored, (i) determining whetherthe received audio segment is missing data and, if it is, retrieving themissing data, if available, from the corresponding previously storedaudio segment and (ii) determining whether the previously stored audiosegment is missing data and, if it is, obtaining the missing data fromthe received audio segment, if available, and storing the missing datain the memory to thereby create a more complete copy of the audiosegment in the memory; and (5) providing each of the received audiosegments to the output driver along with any missing data retrieved fromthe memory.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of one embodiment of a data transmissionsystem.

FIG. 2 is a graphical representation of the system of FIG. 1.

FIG. 3 is a block diagram showing more detail of a receiver 12 shown inFIG. 1.

FIG. 4 illustrates, in graphical form, an example of content that may betransmitted to a receiver 12 of FIG. 1.

FIG. 5 is a flowchart showing one example of a method for implementingone embodiment of the invention.

FIG. 6 is a graphical representation of an alternative embodiment of adata transmission system.

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS

Referring to FIG. 1, a block diagram of one embodiment of a datatransmission system, such as, but not limited to, a satellite system,comprises one or more transceivers 10, one or more receivers 12, and oneor more transmission stations 14 (only one of which is shown in FIG. 1).The receivers may be, for example, satellite radio receivers such as aretypically contained within vehicles like cars, trains, planes, boatsetc. Transceivers 10 may be satellites in geosynchronous orbit, whiletransmission stations 10 may be ground stations in communication withone or more of the satellites. Signals, as described further below, aretransmitted from at least one of the transmission stations 14 to atleast one of the transceivers 10 which, in turn transmit to at least oneof the receivers 12. The signals contain data such as video, radioprogramming containing songs, commercials, talk and the like. FIG. 2illustrates a graphical representation of the system of FIG. 1, andshows a single transmission station 14, a single satellite 16 thatcontains a transceiver 10 (not shown in FIG. 2) and a plurality ofvehicles 18, each of which would contain a receiver 12 (not shown inFIG. 2). A building or other obstruction 19 may interfere withtransmission to the vehicles 18. Examples of other obstructions includebridges, tunnels, trees and clouds.

FIG. 3 illustrates one embodiment of a receiver 12 in greater detail.The receiver includes an antenna system 20 having an antenna andassociated circuitry, an inbound memory 21, a processor 22, a secondmemory 23, and a data bus 24 coupling the foregoing components. Receiver12 further includes a video and/or audio driver 25 that drives a display26 and/or a speaker 27. A user input device 28 is also coupled to databus 24. User input 28 can be any suitable input device such as a touchscreen, a series of buttons, a voice recognition system, etc.

Inbound memory 21 may be a memory that allows rapid storage andretrieval (such as RAM or FLASH). Second memory 23 should preferably bea non-volatile memory such as FLASH or a hard drive. Alternatively,memories 21 and 23 can be combined into one memory device. Antennasystem 20 includes typical circuitry and hardware to enable successfulreceipt of the transmitted signal. This may include memory, a processor,error correction circuitry and/or software, security circuitry and/orsoftware, etc.

Referring to FIGS. 1 and 3, in one aspect the system can function asfollows. Content, such as video and music, is transmitted from thetransmission station 14 to one or more of the transceivers 10. Thereceived content is then retransmitted by the respective transceiver 10to one or more of the receivers 12. For a given receiver 12, incomingdata is delivered via antenna system 20 to inbound memory 21, typicallyunder the control of processor 22 and using data bus 24. Alternatively,antenna system 20 may have sufficient circuitry and processingcapability to deliver the received content to inbound memory 21 forfurther processing by the rest of the system.

Suitable software instructions can be stored in memory, such as secondmemory 23, the software allowing the processor 22 to carry out the stepsexplained herein. Under the control of microprocessor 22, the incomingdata is used to drive output driver 25 to provide video and/or audiocontent to a user. The user input 28 can be used to change the channel,adjust the audio and/or video settings, etc.

The transmitted content typically contains a substantial amount of datathat is repeatedly transmitted over a period of time. For example, ifthe content of a typical music station is considered, much of thetransmitted data consists of songs that are repeatedly transmitted.Other content, such as news and “DJ” chatter, may be transmitted lessfrequently or perhaps only a single time. Commercials are anotherexample of content that is repeatedly transmitted. FIG. 4 illustrates,in graphical form, an example of content that may be transmitted to areceiver 12. The data stream contains data defining a number ofindividual segments, such as individual songs, commercials, etc. orportions thereof. As an example, FIG. 4 illustrates a first song (i.e.,“Song No. 1”), followed by DJ chatter (“DJ Chatter No. 1”), a secondsong (“Song No. 2”) and a commercial (“Commercial No. 1”). At a laterpoint in time in this example, as indicated by the dotted lines, SongNo. 1 is retransmitted, as is Commercial No. 1.

In a first embodiment of the invention, incoming data is both used todrive the output mechanism (e.g., speakers and/or display) as discussedabove, and is further stored in memory 23. Thus, for example, as orafter Song No. 1 is received, it is used to drive driver 25 and is alsostored in memory 23. Each piece of incoming data may be similarly storedin memory 23. In this way, the system builds a database of transmittedcontent. As data is received at the inbound memory 21, microprocessor 22compares the received data with data previously stored in memory 23 tosee if any portion of the received data is a repeat transmission ofearlier transmitted content. For example, referring to FIG. 4, thesecond time that Song. No. 1 is received, microprocessor 22 willrecognize that the incoming song is a repeat of an earlier transmitted,and now presumably stored, song. This recognition process may occur veryearly in the transmission of a song, as it will only be necessary tocompare enough of the beginning of the song to confirm its identity.

As discussed above, there will be occasions where the data streamreceived at a receiver 12 will be interrupted. For example, a vehiclecontaining receiver 12 might pass into a tunnel blocking access to thesatellite containing transceiver 10. When this occurs, some portion ofthe received content will be lost. However, in accordance with thisembodiment of the invention, as a particular retransmitted item, such asSong. No. 1, is played using driver 25, the system will be able to fillin any missing data in the transmission using the stored copy of thedata. So, for example, if receiver 12 experiences an interruption intransmission during the second playing (or any subsequent playing) ofSong. No. 1, the user of the system will not be affected by theinterruption. Rather, the song can be played in its entirety, withoutinterruption, using the stored copy of the content. In this way, thecurrent embodiment avoids a common problem with any transmission systemthat is subject to interruptions, such as wireless transmission systemsand enables smoother provision of content to a user.

Note that it is possible that there will be missing content during thefirst transmission of an item, such as during the first transmission ofSong. No. 1 in FIG. 4. In such case, the system may store as much ofSong. No. 1 as has been received. During subsequent transmissions ofSong. No. 1, the system will “fill in the blanks” caused by theinterruption experienced during the first transmission, thereby buildinga more complete copy of Song. No. 1. In addition, even if an incompletecopy of Song No. 1 is stored, that data can be used to fill in at leastcertain “blanks” caused by interruptions during a second transmission ofSong. No. 1. So, incomplete data can still be useful during a secondtransmission.

FIG. 5 is a flowchart showing one example of a method for implementingone embodiment of the invention. In the first step of this flowchart(step 501) incoming data is detected. In the next step (step 502), thedata is stored in inbound memory 21. In the next step (step 503) thesystem determines whether the received content matches a previouslystored content. If it does not (possibly indicating the first receipt ofthe content), then a copy of the content is placed in second memory 23(step 504).

If the received content is judged in step 503 to be a match for apreviously stored content, then the system determines in step 505whether the previously stored copy is a complete copy. If it is not,then the received data is used, if possible, to fill in any blanks inthe stored version of the content to thereby create a more complete copyof the content in second memory 23 (step 506). If the received andstored versions of a particular item are both missing the same portion,then, of course, the system may not be able to improve the stored copyat this time. Step 506 improves the stored version to the extentpossible using the incoming data.

If the system judges in step 505 that the stored version of the incomingcontent is complete, then it will transition to step 507, whichdetermines whether there are any blanks in the incoming data. Similarly,after improving the stored copy of the data in step 506, the systemtransitions to step 507. If the incoming data does have one or moreblanks (defined as any missing content), then the system will use thestored copy of the content to fill in those blanks, to the extent thestored content has the missing data (step 508).

Next, the system will provide the data to the output driver 25 (step509) to drive the output display and/or speaker. Following this (or asimilar) process will improve the delivery of content to the user sinceat least some blanks will be filled in using stored content.

The precise order of the steps in FIG. 5 is not critical as will beunderstood to those of skill in the art. For example, the order of steps505 and 507 could be easily reversed. Furthermore, many of these stepscould be done in parallel. The system can process incoming data invarious appropriate portions. For example, an entire song can beprocessed at once or a defined portion of a song. In the case of digitaldata, a predetermined number of bytes could be processed at a time.Various buffers could also be used to ensure that there is a smoothdelivery of data to the output driver. The output driver should not bekept “waiting” for data while it is being processed by the system. Thus,as will be understood by those skilled in the art, the incoming data isprocessed in such a way that the output driver is provided with data asit needs it.

In an alternative embodiment, the data stream to be processed isprovided with a series of codes to facilitate processing. For example,each data segment (song, commercial, etc. or portion thereof) can beassigned certain codes. One code can be used to indicate that thereceived segment is of the type that will be retransmitted and thusshould be stored (e.g., a song). Another code can be used to indicatethat the received segment is of the type that will not be retransmitted(e.g., DJ chatter) and will not be stored. Similarly, the absence of acode can indicate either that the segment is of the first type or of thesecond type.

Codes also can be used to facilitate identification of the receivedcontent. For example, each segment that will be retransmitted can beassigned a unique identifying code. The code preferably comes at thebeginning of the transmission of the segment so that the system can moreeasily identify the segment and determine whether or not it has beenpreviously stored.

A code can also be used to indicate whether a stored copy of a segmentis complete, and even to identify the incomplete portions. If a databaseis used to store the segments in second memory 23, then one field of thedatabase can indicate whether the stored copy is complete and anotherfield can indicate where the missing portions are, if there are any. Asa further example, a segment can be broken up into “N” blocks, each ofwhich has a unique identifier. As the blocks are stored, the systemdetermines whether the block is complete and sets a “flag” to indicatethe result. Then, on subsequent transmissions of that segment, thesystem can use these flags to locate blocks with missing data and fillin those “blanks” in the database.

In yet another alternative embodiment, a code can be transmitted insteadof the content. More particularly, once a particular item has beentransmitted and stored, there is no need to transmit the item a secondtime. Instead, the system can merely transmit a code that identifies theitem. In a still further alternative embodiment, instead of transmittinga code, the system can transmit a sufficient portion of the content toidentify it without transmitting the entire item. As explained furtherbelow, the content provider can maintain a database that specifies foreach user which segments are stored.

In another alternative embodiment, the user will have the option to loadcopies of songs to the system. For example, the user may have purchaseda copy of the song and can use the purchased copy to populate thedatabase in second memory 23. User can simply plug in his music playercontaining such content and the system will locate copies of content notalready stored and then store such content in memory. This willfacilitate receipt of transmissions since even during the first receiptof a particular song, the system will be able to fill in missing blanksusing the copy loaded by the user.

In another alternative embodiment, a user will have the option tosubstitute one segment for another. For example, if the user does notlike “Song No. 2” then, the user can set the system to play somealternative content each time Song No. 2 is received. The alternativecontent can be one of a variety of things. The user can define aparticular song to replace Song. No. 2. Alternatively, the user can setthe system to play a random song instead of Song No. 2. The user cansimilarly replace commercials, or even DJ chatter, with alternativecontent. Furthermore, an interruption in delivery may occur for longerthan any individual song or content. For example, on a stormy day, auser can lose reception from a satellite transmitter for an extendedperiod of time. In such circumstances, the system can continue todeliver content to the user in a number of predefined ways. Random songscan be played, previous programming can be repeated, complete withcommercials, etc.

In another alternative embodiment, the system can be used to facilitatethe delivery of content to a user that is time shifted, i.e., it ispresented to the user at a time other than when it is broadcast. Forexample, a particular content provider (such as a radio station) cansend data specifying the programming to be delivered to the user inadvance. The content can then be delivered when the user activates thesystem or can be delivered at a predetermined time. The use of codesidentifying the stored segments can facilitate this alternative. If theparticular segments are already stored on the user's system, then allthat need be broadcast is a series of codes specifying the order inwhich the segments are to be played. The content provider can makeassumptions about whether the content is stored on the user's system,e.g., if a particular song has been broadcast many times, then thecontent provider may conclude that every user is likely to already havea copy.

Alternatively, the content provider can keep a database of each user anda record of which segments are stored in that user's system. Thisinformation can be provided from the user's system to the contentprovider in a number of ways. A periodic cellular transmission from theuser's system to the content provider can update the content provider'sdatabase for each user. The content provider can then make periodicdeliveries of content on a user-by-user basis (using satellitebroadcasts, cellular broadcasts or other means). Such customizeddeliveries can provide programming, complete data on segments notcurrently stored on the user's system, and even programming tailored tothat user's preferences.

In a still further alternative embodiment, the transceivers 10 of FIG. 1are eliminated and the transmitter 14 transmits directly to thereceivers 12. Such a system is shown in FIG. 6, where a transmitter 14is placed on top of building 19 such that it can broadcast directly toreceivers contained within vehicles 18. Many different transmissionsystems are suitable with the present inventions, as will be understoodby those of skill in the art.

The system may optionally include security to prevent copying andsharing of the transmitted content. For example, the transmission systemcan transmit keys that are required to unlock and play stored content.Such systems are well known to those of skill in the art.

The preceding description is for illustrative purposes only and therewill be many additional variations and alternatives as will beunderstood to one of skill in the art.

The invention claimed is:
 1. A system for delivering content to usersfrom a content provider, the system comprising; a transmission systemfor transmitting content in a series of segments, said series ofsegments being transmitted during each of multiple periods of time,wherein said periods of time are not overlapping and are offset by anamount of time that is greater than the duration of said series ofsegments; a plurality of receivers for receiving said series of segmentstransmitted from said transmission system during each of said periods oftime, each of said receivers comprising a non-volatile memory, aprocessor, and an output driver, said non-volatile memory having storedtherein instructions that, when executed, will cause said processor toperform the following steps: (1) comparing each of said segmentsreceived during a current one of said periods of time to any segmentsstored in said non-volatile memory during a previous one of said periodsof time to determine whether each received segment has been previouslystored in said non-volatile memory; (2) for a particular receivedsegment that has not been previously stored, storing said segment insaid non-volatile memory; (3) for a particular received segment that hasbeen previously stored, determining whether said received segment ismissing data and, if it is, retrieving said missing data, if available,from the corresponding previously stored segment; and (4) providing eachof said received segments to said output driver along with any missingdata retrieved from said non-volatile memory.
 2. The system of claim 1wherein said stored instructions further cause said processor to performthe following additional step: for a particular received segment thathas been previously stored, determining whether said previously storedsegment is missing data and, if it is, obtaining the missing data fromthe received segment, if available, and storing the missing data in thenon-volatile memory to thereby create a more complete copy of thesegment in the non-volatile memory.
 3. The system of claim 1 whereinsaid non-volatile memory comprises first and second physically distinctmemories, each of which is coupled to said processor.
 4. The system ofclaim 1 wherein said transmission system comprises a ground basedantenna and a plurality of satellites.
 5. The system of claim 1 whereineach of said receivers further comprises an antenna and a volatilememory for temporarily storing said series of segments, said volatilememory being coupled to said processor through a data bus.
 6. The systemof claim 1 wherein said series of segments comprises songs, each segmentcomprising a separate song.
 7. The system of claim 1 wherein said seriesof segments comprises songs, commercials and talk.
 8. The system ofclaim 1 further comprising an output device coupled to said outputdriver.
 9. The system of claim 8 wherein said output device comprises adisplay and a speaker.
 10. The system of claim 1 wherein each of saidsegments comprises a code that identifies said segment as either asegment that will be transmitted multiple times or as a segment thatwill be transmitted only once.
 11. The system of claim 10 wherein saidinstructions will cause said processor to perform steps (1), (2) and (3)only for those segments that have said code indicating that they will betransmitted multiple times.
 12. The system of claim 1 wherein saidtransmission system is a wireless transmission system.
 13. A system fordelivering audio content to users from a content provider, the systemcomprising; a transmission system for transmitting content in a seriesof audio segments, said series of audio segments being transmittedduring each of multiple periods of time, wherein said periods of timeare not overlapping and are offset by an amount of time that is greaterthan the duration of said series of audio segments; a plurality ofreceivers for receiving said series of audio segments transmitted fromsaid transmission system during each of said periods of time, each ofsaid receivers comprising a non-volatile memory, a processor, and anoutput driver, said non-volatile memory having stored thereininstructions that, when executed, will cause said processor to performthe following steps: (1) comparing each of said audio segments receivedduring a current one of said periods of time to any segments stored insaid non-volatile memory during a previous one of said periods of timeto determine whether each received audio segment has been previouslystored in said non-volatile memory; (2) for a particular received audiosegment that has not been previously stored, storing said audio segmentin said non-volatile memory; (3) for a particular received audio segmentthat has been previously stored, (i) determining whether said receivedaudio segment is missing data and, if it is, retrieving said missingdata, if available, from the corresponding previously stored audiosegment and (ii) determining whether said previously stored audiosegment is missing data and, if it is, obtaining the missing data fromthe received audio segment, if available, and storing the missing datain the non-volatile memory to thereby create a more complete copy of theaudio segment in the non-volatile memory; and (4) providing each of saidreceived audio segments to said output driver along with any missingdata retrieved from said non-volatile memory.
 14. The system of claim 13wherein said non-volatile memory comprises first and second physicallydistinct memories, each of which is coupled to said processor.
 15. Thesystem of claim 13 wherein said transmission system comprises a groundbased antenna and a plurality of satellites.
 16. The system of claim 13wherein said transmission system is a wireless transmission system. 17.The system of claim 13 wherein said series of segments comprises songs,each segment comprising a separate song.
 18. The system of claim 13wherein said series of segments comprises songs, commercials and talk.19. The system of claim 13 further comprising an output device coupledto said output driver, said output device comprising a display and aspeaker.
 20. The system of claim 13 wherein each of said segmentscomprises a code that identifies said segment as either a segment thatwill be transmitted multiple times or as a segment that will betransmitted only once, and wherein said instructions will cause saidprocessor to perform steps (1), (2) and (3) only for those segments thathave said code indicating that they will be transmitted multiple times.21. A system for delivering and playing audio content to users from acontent provider, the system comprising; a transmission system fortransmitting audio content in a series of audio segments, said series ofaudio segments being transmitted during each of multiple periods oftime, wherein said periods of time are offset by an amount of time thatis greater than the duration of said series of audio segments; aplurality of receivers for receiving said series of audio segmentstransmitted from said transmission system during each of said periods oftime, each of said receivers comprising a non-volatile memory, aprocessor, and an output audio driver, said non-volatile memory havingstored therein instructions that, when executed, will cause saidprocessor to perform the following steps: (1) comparing an audio segmentreceived during a current one of said periods of time to a plurality ofaudio segments stored in said non-volatile memory during a previous oneof said periods of time to identify a previously stored audio segmentthat has substantially the same audio content as said received audiosegment; (2) identifying audio data that is missing from said receivedaudio segment and retrieving said missing audio data from saididentified previously stored audio segment; (3) providing said receivedaudio segment to said output audio driver along with said audio dataretrieved in the preceding step to cause said audio driver to audiblyplay said received audio segment and said retrieved audio data; (4)identifying audio data that is missing from said identified previouslystored audio segment and retrieving said missing audio data from saidreceived audio segment; and (5) storing said audio data retrieved in thepreceding step in said non-volatile memory to create a more completerecord of said identified previously stored audio segment.
 22. Thesystem of claim 21 wherein said stored instructions will cause saidprocessor to execute steps (4) and (5) at a point in time before step(3).
 23. A system for storing a plurality of audio segments in anon-volatile memory using repeated transmissions of said audio segments,the system comprising; a transmission system for repeatedly transmittingeach of said audio segments; a plurality of receivers for receiving saidaudio segments transmitted from said transmission system, each of saidreceivers comprising a non-volatile memory and a processor, saidnon-volatile memory having stored therein instructions that, whenexecuted, will cause said processor to perform the following steps foreach received audio segment: (1) comparing each received audio segmentto a plurality of previously stored audio segments stored in saidnon-volatile memory to identify a previously stored audio segment thathas substantially the same audio content as said received audio segment;(2) identifying data that is missing from said identified previouslystored audio segment and present in said received audio segment; and (3)storing said audio data identified in the preceding step in saidnon-volatile memory to create a more complete record of said identifiedpreviously stored audio segment, said more complete record beingmaintained in said non-volatile memory after said received audio segmentis provided to an output driver for playback.
 24. A system fordelivering audio content to users from a content provider, the systemcomprising; a transmission system for transmitting content in a seriesof audio segments, said series of audio segments being transmittedduring each of multiple periods of time, wherein said periods of timeare not overlapping and are offset by an amount of time that is greaterthan the duration of said series of audio segments; a plurality ofreceivers for receiving said series of audio segments transmitted fromsaid transmission system during each of said periods of time, each ofsaid receivers comprising a non-volatile memory, a processor, and anoutput driver, said non-volatile memory having stored thereininstructions that, when executed, will cause said processor to performthe following steps: (1) comparing each of said audio segments receivedduring a current one of said periods of time to any segments stored insaid non-volatile memory during a previous one of said periods of timeto determine whether each received audio segment has been previouslystored in said non-volatile memory; (2) for a particular received audiosegment that has not been previously stored, storing said audio segmentin said non-volatile memory; (3) for a particular received audio segmentthat has been previously stored, (i) determining whether said receivedaudio segment is missing data and, if it is, retrieving said missingdata, if available, from the corresponding previously stored audiosegment and (ii) determining whether said previously stored audiosegment is missing data and, if it is, obtaining the missing data fromthe received audio segment, if available, and storing the missing datain the non-volatile memory to thereby create a more complete copy of theaudio segment in the non-volatile memory; and (4) providing each of saidreceived audio segments to said output driver along with any missingdata retrieved from said non-volatile memory; wherein each of saidsegments comprises a code that identifies said segment as either asegment that will be transmitted multiple times or as a segment thatwill be transmitted only once, and wherein said instructions will causesaid processor to perform steps (1), (2) and (3) only for those segmentsthat have said code indicating that they will be transmitted multipletimes.